Stringent requirements are often placed on the time synchronism of nodes employed in distributed communication or communication network systems. In general, a time synchronization protocol is required to achieve time synchronization between at least two nodes distributed in a packet-switched network. In at least one implementation, one node for providing a reference clock for time synchronization is set as a master node. A node to be time-synchronized with the master node is set as a slave node, and then the master and the slave nodes exchange messages including time information to achieve time synchronization between the master and the slave nodes.
Two known time synchronization protocols or techniques include: Network Time Protocol (NTP) and Precision Time Protocol (PTP). NTP may be the most widely used protocol for time synchronization over Local Area Networks (LANs) and Wide Area Networks (WANs). NTP is relatively inexpensive to implement, requiring little in the way of hardware. It can usually maintain time synchronization within 10 milliseconds over the public Internet and can attain accuracies of 200 seconds or better in LANs under ideal conditions. However, the current version of NTP does not meet the higher precision requirements required by many latency critical applications.
IEEE 1588 Standard (Precision Clock Synchronization Protocol for Networked Measurement and Control Systems), also known as Precision Time Protocol (PTP), has received considerable attention since its introduction. PTP forms the basis for defining Ethernet links that can transport synchronization signals with small and well-defined delays (with accuracy on the order of sub-milliseconds), synchronizing Ethernet tasks over large physical distances.
PTP clocks are organized in a master-slave hierarchy, where each slave synchronizes to its master based on timing messages exchanged between the master and slave. The master sends to the slave synchronization messages that include the sending time and measures the time difference between the master and slave clocks using the response messages received from the slave. Similarly, the slave sends to the master delay request messages that contain the estimate of the sending time and measures the time difference between the slave and master clocks. The one-way delay between the clocks and the offset of the slave clock can then be determined based on two measurements, enabling the slave to correct its clock based on the offset.
PTP timing messages are generally issued by PTP application code in one clock and received and processed by the PTP application code in another clock. These messages typically have a preamble specified by the physical layer of the communication protocol in use on the network. The preamble is followed by one or more protocol specific headers and then user data such as the PTP payload. As a PTP message traverses the protocol stack in a node, timestamps are generated when the message timestamp point passes a defined point in the stack. This defined point may be in the application layer, in the kernel or interrupt service routines, or in the physical layer of the protocol stack. In general, the closer this point is to the actual network connection, the smaller the timing errors introduced by fluctuations in the time taken to traverse the lower layers. In cases where timestamps are generated in the physical layer, hardware assist circuitry is often employed. In this case, the timestamp is conveyed to the PTP code via a path outside of the normal path followed by the PTP timing message itself. To ensure that the timestamps are associated with the correct message, the hardware assist often captures additional information from the PTP timing message that is passed with the timestamp to the PTP code.
PTP relies on the ability to associate a timestamp to an actual point in time when message information is sent out. However, in digital communication systems that use multi-carrier modulation, such as in xDSL technologies that may include Asymmetric Digital Subscriber Line (ADSL), ADSL2, ADSL2+, Very high speed DSL (VDSL), VDSL2, G.Lite, and High bit rate Digital Subscriber Line (HDSL) and the like, it is not possible to apply a timestamp precisely to a particular part of a message at substantially the point in time that the message is transmitted to a receiving device. In particular, multi-carrier modulation schemes, such as Orthogonal Frequency Division Multiplexing (OFDM) and Discrete Multi-Tone (DMT), process data and associated timestamp information in the frequency domain and convert the data and associated timestamp information into time-domain output samples that are known as multicarrier symbols or DMT symbols. Associating the timestamp information to data in the frequency domain means that it is not possible to determine the time instant that the timestamp information is transmitted. Moreover, additional timing uncertainty is created at the receiving device. In particular, it is difficult for the receiving device to ascertain the location of timing information associated with the received multicarrier symbols until after frequency domain processing is complete.